package com.ayz.gateway.springbootstarter.annotation;

import java.lang.annotation.*;

/**
 * 当前RPC方法需要被API网关所管理
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Target({ElementType.METHOD})
public @interface ApiProviderMethod {
    /**
     * 当前RPC方法所映射的HTTP资源名称
     * @return
     */
    String httpUri() default "";

    /**
     * 当前方法的名称
     * 如果没指定，默认是方法的名称
     * @return
     */
    String methodName() default "";

    /**
     * HTTP请求访问此方法，在API网关处是否需要先进行鉴权
     * @return
     */
    boolean isAuth() default false;

    /**
     * 方法参数的全类路径名,
     * 注意 目前只支持方法中有一个参数
     * 要么是 基础数据类型
     * 要么是 引用数据类型
     * @return
     */
    String parameterTypeName() default "";
}
